/**
 * File:   Ihm.hpp
 * Author: CHABOT DIEP MYCEK
 *
 */

#define LINUX 1 /* Pour avoir droit au clear sous linux */


#include <string>
#include <list>
#include<iostream>
#include<sstream>
#include<fstream>
#include <stdlib.h>
#include "Ihm.hpp"

using namespace std;

void Ihm::initEcran(){
	if(LINUX){
		system("clear");
	}
	else system("CLS");
}

void Ihm::sautLigne(int nb=1){
	for(int i=0; i<nb; i++) cout << endl;
}

char Ihm::toMaj(char c){
	if(c>='a' && c<='z') c = c-('a'-'A');
	return c;
}

string Ihm::demanderString(string question){
	const int LG_MAX=300;
	char rep[LG_MAX+1];
	ecrire<string>(question);
	char c;
	while(cin.get(c) && (c==' ' || c=='\n'));
	cin.getline(rep,LG_MAX);
	ostringstream retour;
	retour << c << rep;
	return retour.str();
}

bool Ihm::fichierExiste(string chemin){
	//on ouvre en lecture pour voir si le fichier existe (avec droits de lecture)
	ifstream entree(chemin.c_str(),ios::in);
	bool rep;
	if(entree != NULL){
		rep = entree.is_open();
		entree.close();
	}
	else rep = false;
	return rep; 
}

void Ihm::listerGrilles(){
	fstream liste("./grilles/listeGrilles.txt", ios::in);
	list<string> maListe;
	
	cout << endl << "Liste des grilles sauvegardees" << endl << "------------------------------" << endl << endl;
	
	//on se place au debut
	liste.seekg(0);
	
	//on parcourt le fichier de liste des grilles sauvegardees
	string ligne;
	
	while(!liste.eof() && liste >> ligne){
		ostringstream oss;
		oss << "./grilles/" << ligne << ".xml";
		//si le fichier existe
		if(fichierExiste(oss.str())){
			maListe.push_back(ligne);
		}
	}
	liste.close();
	
	maListe.sort();
	
	liste.open("./grilles/listeGrilles.txt", ios::out | ios::trunc);
	for (list<string>::iterator it=maListe.begin(); it!=maListe.end(); ++it){
		liste << *it << endl;
		cout << *it << endl;
	}
	liste.close();
	
	cout << endl << endl;
}
